;
;`-',
;.-.;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""";, ,;
;`-';         Fractal Universe V5               /\    |\           For Sony Playstation Portable    ;`-';
;.-.;           Mandelbrot Set                 //\/''/''/        with Homebrew Compatible Firmware  ;.-.;
;`-';     Interactive Fractal Explorer        //''||' ||               First Release 03/07/09       ;`-';
;.-.;                                        |/   |/  |/2009!           Last Update 08/07/09        ;.-.;
;`-';                                                                                               ;`-'; ;"""'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""'"""'


Hi Guys,
The Fractal Universe program was written for the PSP in an effort to simplify the job of porting the same
program to run on Canon Digital Cameras with CHDK. I got interested in the PSP version, and wrote a fully
functional Mandelbrot set fractal explorer.

It is no the first fractal explorer for the PSP, but GoatSucker's program does not include a viewfinder. 

The program was written from source and articles written here: http://warp.povusers.org/Mandelbrot/
I implemented the zoom and colour features myself. Source code will mot be released. If you can't figure it
out from the tutorial page, then I would consider that you can't add anything of much use to this program
unless of course you can figure out how to implement the Julia set from the instructions given.


       **************************************** Disclaimer ******************************************


The Fractal Explorer program is provided for free, as it is, without warranty of any kind, either express or
implied, including, but not limited to, the implied warranties of fitness for a purpose.
Without limiting the foregoing, the author of this program makes no warranty that:

   1. the software will meet your requirements
   2. the software will be uninterrupted, or free of errors.
   3. any errors found in the program will be corrected.
   4. documentation provided with the program will be accurate, complete, or up to date.

Use of this program is at your own discretion and risk and with agreement that you are responsible for any
damages or loss of data that results from such activities.


       ********************************* Grant Of Software License **********************************


The Fractal Universe Program is free to use, but I retain ownership of my software, and grant of license to use
it is under identical terms of GPS Trackmaker license agreement (reproduced in part with permission),
that pertain to preservation of protected ecosystems. View the entire agreement for GPS Trackmaker:
http://www.gpstm.com/downloadscontract.php

"LICENSE GRANT

The author grants a non-exclusive license to use the program, free of charge, if the user:
Does not use the program for illegal purposes;
does not practice activities that destroy or degrades the environment;
does not practice polluting activities;
does not throw trash on the ground or through the cars windows;
when going to the beach and creeks takes his trash back until finding a trash collector;
does not practice any activities that hurts animals, like hunting, out-of-season fishing, pigeon shooting,
dog fight, etc.;
does not buy wild animals that, by law, may not be created out of their natural environment;
has ecological conscience and protects nature.
People that for any reason do not fit the conditions above, are expressly forbidden to use the program."

License to use any version of the Fractal Universe program also require adhesion to the following terms:

When the user visits a Beach or other body of water, National Park or other protected environment,
he or she leaves no damage to live vegetation, leaves no unnatural polluting material, or litter,
and removes non-combustible material from fireplaces, or litter that may have been left by other people
if it is reasonable to store and carry it with your own rubbish.


       *************************************** Installation ******************************************

To Install the Fractal Universe program, copy the program folder to the homebrew game folder of your PSP.
This could be PSP/GAME150 or PSP/GAME3.52, etc.

Fractal Universe is tested with a 3.52 M33 firmware PSP unit. This is the last true 1.50 kernel hybrid firmware.
the program is known to work with other firmwares as well, but I have not personally tested these.
Fractal Universe is a user mode program, and therefore, does not require any kernel mode add-ons.

The program should also work with original 1.50 firmware as long as the program folder is kxploited,
but again, I have not tested this for myself. Fractal Universe V2 and above clock the PSP the 333 MHz.


       ****************************************** Usage **********************************************


At program startup, you will see an intro screen which shows the functions of most buttons.
Chose either the Mandelbrot or Julia set with the left and right direction buttons.
Immediately after this, you may press the Cross button, and  start navigating the virtual fractal universe
with the rest of the supported PSP controls.

Buttons are only responsive when you can see the fractal image on the screen (not while calculating new images).

The directional pad buttons and analogue controller move the view finder in the direction that you select.
The Cross and Triangle buttons zoom in and out one level for each time they are pressed.

The Right Trigger button generates a new colour palette.

The Square button saves a screenshot in bitmap format to the Memory Stick into the directory ms0:/PICTURE/Fractals. This directory is created at program startup if it does not already exist. Files in this directory can be viewed
by the XMB picture viewer at any time. Saving images in future program sessions will not overwrite images from
previous sessions.

The Circle button resets the program. The color palette and saved image counter are not reset.

The Select button generates a single high quality image of the current frame. This high quality mode
will reveal much more detail at higher zoom levels, but can take a number of minutes to render each frame.

The Start button switches to high quality mode for the rest of the program session, or until the program is
reset by pressing the Circle button.

A button combination can be used to animate any rendered frame with cycling colours.
Hold down the Left button on the direction pad, and then press the Circle button to start colour cycling mode.
Colour cycling mode works with both quality settings, and doesn't interfere with the current viewing session.
The Right and Left trigger buttons change the direction of the colour cycling in this mode, and also show a
graphic live updating display of the palette cycling effect. Press the Circle button to exit this mode.

The Left Trigger button starts Auto Mode which will turn on high quality mode and cause the program to produce
frames to create a fractal growth effect video like the one seen here which was created with this program:
http://www.youtube.com/watch?v=vOYNpAPuClE
This is done by incrementing the maximum number of iterations by one for each frame. This process takes a number
of hours, so it might be desirable to zoom into a frame, and then start this mode when you go out, or go to sleep.
When auto mode is done, the images will be available in the Fractals directory on the Memory Stick.
A video can be produced from these frames using the Windows AviSynth program.
A guide on how to do this can be found here:

http://chdk.setepontos.com/index.php/topic,3768.0.html

If you want to go from playing in Media Player, to producing a proper video for sharing and upload to YouTube,
You can use VirtualDub, which is a free Windows program.


       ***************************************** Donations ********************************************


*Donations*
License to use this program will remain free, but I am accepting donations toward new hardware and development.
You can encourage future program and/or hardware development by sending a donation. Contact me on the PSPU,
Austech, or these other listed forums. My user name is Art on all of them, or click the donation link on any of
my project web pages.

I have valuable use for low capacity Memory Sticks for programming. If you like this program,
please consider donating the 32Mb Memory Stick that came with your PSP once you have upgraded,
or perhaps the low capacity Memory Stick that comes with some Sony Ericsson mobile phones.
I also have use for any broken PSP or Canon digital camera hardware.

Thanks goes out to Jason & Jared, a Father & Son team from QJnet forums for being the first to donate a pair
of Memory Sticks! It's much appreciated! :) Keep up the green electronics projects!
Thanks also to MjW, Moose Island, and lifey for their kind donations of PSP Memory Sticks.
Cheers, Art.

http://forums.ps2dev.org/viewforum.php?f=14
http://forums.qj.net/f-qjnet-sony-psp-forums-48.html/
http://www.dcemu.co.uk/vbulletin/index.php
http://www.psp-programming.com/forums/
http://www.psphacking101.com/forum/index.php?c=1
http://www.freewebs.com/defxev/


       ************************************ Program History Log ***************************************

VERSION HISTORY:

V1 (03/07/09):
- First working Mandelbrot set fractal explorer.

V2 (06/07/09):
- Added a higher quality setting (255 iterations).
- Implemented auto mode that can create frames of a fractal growth effect video.
- Program now clocks the PSP to 333 MHz.
- Saved images are now in 24 bit bitmap format.
- Some information is now shown on the calculating screen.
- Program now makes click sound for every valid button press, and when a new frame is rendered.

V3 (06/07/09):
- Fixed program exit screen to work properly when Home button is pressed.
- Implemented zoom viewfinder.
- Images are now saved to ms0:/PICTURE/Fractals so they can be viewed in the XMB picture viewer.

V4 (07/07/09):
- Added progress bar for new frame rendering.
- Implemented live updated display for new frame rendering.
- Added support for anologue controller.
- Added support for Julia set algorithm.
- Implemented feature to prevent previously saved images from being overwritten.
- Implemented colour palette display.
- Colour palette generation no longer causes a new frame to be rendered.

V5 (08/07/09):
- Implemented colour cycling mode.

       ************************************************************************************************


